package com.king.wxpay.service;

import com.king.wxpay.model.*;

/**
 * 微信支付接口
 * @author taomk
 * @version 1.0
 * @since 15-7-10 下午4:08
 */
public interface WxPayService {

	/**
	 * 创建微信预付单
	 * @param prePayBean
	 * @return
	 */
	public PrePayRes unifiedOrder(PrePayReq prePayBean);

	/**
	 * 创建微信预付单 为第三方支付
	 * @param openid
	 * @param appid
	 * @param orderCode
	 * @param callBackUrl
	 * @param totalFee
	 * @param subject
	 * @param ip
	 * @return
	 */
	public PrePayRes unifiedOrderFor3(String openid, String appid, String orderCode, String callBackUrl, String totalFee, String subject, String ip);

	/**
	 * 申请退款
	 * @param appId 微信appId  例如wx9560a617b597d569　
	 * @param outTradeNo 微信交易ID
	 * @param outRefundNo 退款ID
	 * @param totalFee 总钱数　付款总钱数
	 * @param refundFee 退款钱数
	 * @return
	 */
	public ApplyRefundRes applyRefund(String appId, String outTradeNo, String outRefundNo, long totalFee, long refundFee);

	/**
	 * 查询退款
	 * @param appId 微信openid
	 * @param outTradeNo  微信交易号
	 * @param outRefundNo  退款单号
	 * @return
	 */
	public QueryRefundRes queryRefund(String appId, String outTradeNo, String outRefundNo);

	/**
	 * 查询预付单
	 * @param appid
	 * @param wxTranId
	 * @param order
	 * @return
	 */
	public QueryOrderRes queryOrder(String appid, String wxTranId, String order);

//	/**
//	 * 下载对账单
//	 * @param appid
//	 * @param billDate
//	 * @return
//	 */
//	public PrePayRes downloadBill(String appid, String billDate);

	/**
	 * 短链接转换
	 * @return
	 */
	public PrePayRes shortUrl();
}
